#include <opencv2/opencv.hpp>
#include <iostream>

using namespace std;

int main(int argc, char** argv) {
    // 10-12
    cv::Mat src, temp, dst, diff;
    if (argc < 2) {
        cout << "parameters miss!\n"
            << argv[0] << " 1.jpg 2.jpg" << endl;
        return -1;
    }
    src = cv::imread(argv[1]);
    
    // a 
    cv::resize(src, temp, cv::Size(0,0), 0.5, 0.5);
    cv::resize(temp, temp,  cv::Size(0,0), 0.5, 0.5);
    cv::resize(temp, temp, cv::Size(0,0), 0.5, 0.5);
    
    cv::imshow("resize", temp);

    // b
    cv::pyrDown(src, dst);
    cv::pyrDown(dst, dst);
    cv::pyrDown(dst, dst);
    
    cv::imshow("pyr", dst);

    // c
    cv::absdiff(temp, dst, diff);   // 需要大小完全一直
    cv::imshow("abs_diff", diff);

cv::imshow("src", src);

    cv::waitKey(0);
    return 0;
}